認識瀏覽器開發者工具列 (以Chrome舉例實作)
從之前的練習中發現, 我們常會利用JS操作元素的CSS屬性來表示互動介面發生的變化. Break On Attribute Modifications 可以用來檢查某個DOM的屬性被JS改變時, 背後發生了什麼事.
使用步驟如下:
除了最常用的console.log
外, console
還有其他功能, 能夠在控制台介面顯示出對開發者更有用的資訊.
console.log
console.log('Hello')
console.log
中插入字串%s
是佔位符號, 代表的實際值放在第二個參數內, 實際輸出結果為Hello little oTree
.
console.log('Hello little %s', 'oTree')
console.log
中使用CSS%c
放在要改變樣式的字串前方, 代表樣式的佔位符號, 在字串中以CSS的格式輸入屬性與值, 該字串輸出結果會帶有樣式.
console.log('%c Big Dudi!', 'color: #780011; font-size: 32px;')
console.warn
在控制台中顯示警告訊息
console.warn('%c Oh No!!!', 'background-color: gold; color: white;')
console.error
在控制台中顯示錯誤訊息
console.error('Holy shit!')
console.info
在控制台中顯示代表資訊的訊息
console.info('Old tree means trees older than 100 years.')
console.assert
assert
可以用來測試, 例如我要判斷某個元素有沒有dudi
這類別, 並將結果顯示在控制台訊息中, 我只需要用assert
包住該元素, 在第二個參數寫下測試失敗的回饋訊息即可.
<p class="dudo">I am Dudo.</p>
const testingUnit = document.querySelector('p')
console.assert(testingUnit.classList.contains('dudi'), 'There is no dudi')
console.clear
clear()
用來將之前顯示的控制台訊息清空, 保持畫面整潔.
console.clear();
console.dir(Element)
顯示某個元素的DOM物件, 裡面會有該物件的所有屬性, 方法等...
用來檢查我們所選取的元素有何屬性, 方法能使用, 是非常方便的.
console.dir(testingUnit);
在控制台面板顯示群組化的訊息, 被群組化的訊息會以縮排的方式呈現. console.group
, console.groupCollapsed
用來放在要群組畫的訊息的頭, 兩者差在被群組化的訊息是否一開始以摺疊的方式呈現. console.groupEnd
放在尾巴, 代表訊息的終點. 下面程式碼放到console中執行便可看到群組結果.
const dogs = [{ name: 'Snickers', age: 2 }, { name: 'hugo', age: 8 }];
dogs.forEach(dog => {
console.groupCollapsed(`${dog.name}`)
console.log(`This is ${dog.name}`)
console.log(`${dog.name} is ${dog.age} years old.`)
console.groupEnd(`${dog.name}`)
})
console.count
用來計算某段程式碼被呼叫了幾次. 把count
插在不同的函式中, 用不同的方式呼叫等, 都會分別產生不同的計次.
如下程式碼, dudi
跟dudu
被呼叫的次數是不同的.
for(let i = 0; i < 10; i++) {
console.count('dudi')
if(i % 3 === 1) { console.count('dudu')}
}
用來計算某段程式執行的時間, 例如從遠端請求檔案到拿到檔案需要多久之類的. time()
代表計時開始, timeEnd()
代表計時結束, time
跟timeEnd
內部的訊息相當於計時器的名稱, 必須一致.
console.time('fetching data')
fetch('https://api.github.com/users/godlike0108')
.then(data => data.json())
.then(data => {
console.timeEnd('fetching data')
console.table(data)
});
以上就是JS 30 第九篇!